{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5d904dee",
   "metadata": {},
   "source": [
    "# Example 12: Unsupervised learning"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6465ec94",
   "metadata": {},
   "source": [
    "In this example, we will use KAN for unsupervised learning. Instead of trying to figure out how a target variable $y$ depends on input variables, we treat all variables on the equal footing (as input variables). Below we contruct a synthetic dataset where we have six variables $x_1, x_2, x_3, x_4, x_5, x_6$. $(x_1, x_2, x_3)$ are dependent such that $x_3={\\rm exp}({\\rm sin}(\\pi x_1)+x_2^2)$; $(x_4,x_5)$ are dependent such that $x_5=x_4^3$. And $x_6$ is independent of all other variables. Can we use KANs to discover these dependent groups?\n",
    "\n",
    "The idea is that we treat the problem as a classification problem. The dataset that satisfies these interdependent relations are 'positive' samples, while corrupted samples (by random permutation of features across samples) are 'negative' samples. We want to train a KAN to output 1 when it is a positive sample, and output 0 when it is a negative sample. We set the last layer activation to be Gaussian, so positive samples will have zero activation in the second to last layer, while negtive samples will have non-zero activation in the second to last layer. We can then define the relation implicitly as $g=0$ where $g$ is the activation in the second to last layer."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94056ef6",
   "metadata": {},
   "source": [
    "Intialize model and create dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0a59179d",
   "metadata": {},
   "outputs": [],
   "source": [
    "from kan import KAN\n",
    "import torch\n",
    "import copy\n",
    "\n",
    "\n",
    "seed = 1\n",
    "\n",
    "model = KAN(width=[6,1,1], grid=3, k=3, seed=seed)\n",
    "\n",
    "# create dataset\n",
    "\n",
    "\n",
    "def create_dataset(train_num=500, test_num=500):\n",
    "    \n",
    "    def generate_contrastive(x):\n",
    "        # positive samples\n",
    "        batch = x.shape[0]\n",
    "        x[:,2] = torch.exp(torch.sin(torch.pi*x[:,0])+x[:,1]**2)\n",
    "        x[:,3] = x[:,4]**3\n",
    "\n",
    "        # negative samples\n",
    "        def corrupt(tensor):\n",
    "            y = copy.deepcopy(tensor)\n",
    "            for i in range(y.shape[1]):\n",
    "                y[:,i] = y[:,i][torch.randperm(y.shape[0])]\n",
    "            return y\n",
    "\n",
    "        x_cor = corrupt(x)\n",
    "        x = torch.cat([x, x_cor], dim=0)\n",
    "        y = torch.cat([torch.ones(batch,), torch.zeros(batch,)], dim=0)[:,None]\n",
    "        return x, y\n",
    "        \n",
    "    x = torch.rand(train_num, 6) * 2 - 1\n",
    "    x_train, y_train = generate_contrastive(x)\n",
    "    \n",
    "    x = torch.rand(test_num, 6) * 2 - 1\n",
    "    x_test, y_test = generate_contrastive(x)\n",
    "    \n",
    "    dataset = {}\n",
    "    dataset['train_input'] = x_train\n",
    "    dataset['test_input'] = x_test\n",
    "    dataset['train_label'] = y_train\n",
    "    dataset['test_label'] = y_test\n",
    "    return dataset\n",
    "\n",
    "dataset = create_dataset()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "79665292",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model(dataset['train_input'])\n",
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "45760ca2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the (1,0,0) activation to be gausssian\n",
    "#model.fix_symbolic(1,0,0,lambda x: torch.exp(-x**2/10),fit_params_bool=False)\n",
    "model.fix_symbolic(1,0,0,'gaussian',fit_params_bool=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "d951ae17",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model(dataset['train_input'])\n",
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "aa26622b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 1.68e-01 | test loss: 1.50e-01 | reg: 7.93e+00 : 100%|██| 50/50 [00:14<00:00,  3.37it/s]\n"
     ]
    }
   ],
   "source": [
    "model.train(dataset, opt=\"LBFGS\", steps=50, lamb=0.002, lamb_entropy=10.0);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "9d162e40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.plot(in_vars=[r'$x_{}$'.format(i) for i in range(1,7)])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b239996d",
   "metadata": {},
   "source": [
    "This gives the dependence among $(x_1,x_2,x_3)$. Another random seed can give dependence among $(x_4,x_5)$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e3c31cf5",
   "metadata": {},
   "outputs": [],
   "source": [
    "seed = 42\n",
    "model = KAN(width=[6,1,1], grid=3, k=3, seed=seed, noise_scale_base=1.0)\n",
    "dataset = create_dataset()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "e1d5046a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model(dataset['train_input'])\n",
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "52ec328b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the (1,0,0) activation to be gausssian\n",
    "#model.fix_symbolic(1,0,0,lambda x: torch.exp(-x**2/10),fit_params_bool=False)\n",
    "model.fix_symbolic(1,0,0,'gaussian',fit_params_bool=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "79fff8e1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model(dataset['train_input'])\n",
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "818d76e2",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 4.29e-02 | test loss: 9.15e-02 | reg: 1.45e+01 : 100%|█| 100/100 [00:25<00:00,  3.96it/s\n"
     ]
    }
   ],
   "source": [
    "model.train(dataset, opt=\"LBFGS\", steps=100, lamb=0.001, lamb_entropy=10.0);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c5cb7884",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.plot(in_vars=[r'$x_{}$'.format(i) for i in range(1,7)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6b5975f8",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
